'''
Author: 火红色祥云 809880192@qq.com
Date: 2023-12-26 16:56:37
LastEditors: 火红色祥云 809880192@qq.com
LastEditTime: 2023-12-26 17:01:00
FilePath: /project_luckfox/spi/spi.py
Description: 这段代码使用 spidev 库中的SpiDev类创建了一个SPI对象。
            通过调用 open 方法，指定SPI总线和设备的编号，这里是SPI总线0的设备0。
            设置了SPI的最大传输速率为1,000,000 Hz，即1 MHz。
            这一步是为了配置SPI设备的基本参数，以便进行后续的数据传输。
            这段代码使用 xfer2 方法进行SPI数据传输。
            在这个例子中， tx_buffer 是要发送的数据，而 rx_buffer 将存储接收到的数据。
            注意，为了确保 tx_buffer 的原始值保持不变，传递给 xfer2 的是 tx_buffer 的副本，即tx_buffer[:]。
            最后，通过 print 语句将发送和接收的数据以字符串形式打印出来，方便用户查看。
'''
import spidev

def main():
    tx_buffer = [ord(char) for char in "hello world!"]
    rx_buffer = [0] * len(tx_buffer)

    try:
        spi = spidev.SpiDev()
        spi.open(0, 0)
        spi.max_speed_hz = 1000000  

        rx_buffer = spi.xfer2(tx_buffer[:])
        print("tx_buffer:\n\r", ''.join(map(chr, tx_buffer)))
        print("rx_buffer:\n\r", ''.join(map(chr, rx_buffer)))

    except Exception as e:
        print(f"An error occurred: {e}")

    finally:
        if spi:
            spi.close()

if __name__ == "__main__":
    main()